The present invention relates to a time out control apparatus to connect a plurality of physically separated buses to each other, and a time out procedure in a time out control system.
The IEEE1394 interface is known as digital interface to transfer such multimedia information as images and voices at a high speed and real-time between the digital cameras and the personal computers.
In this IEEE 1394, up to 63 terminal units (hereinafter referred to as nodes) can be connected to one bus, and the longest length of cable that can connect any two nodes is 4.5 m. All the nodes that are connected to the buses 102 of this IEEE 1394 have each a virtual address spacexe2x80x9448-bit address space called CSR addressxe2x80x94on a memory 300 built in the terminal unit 100 as shown in FIG. 20xe2x80x94and communication between the respective nodes is effected by reading or writing in this address space. The node, in case a request packet requesting to read or write in another node connected to the same bus is sent, sets the timer with a value as timer valuexe2x80x94a value set at a split time out register (SPLIT_TIMEOUT REGISTER) 310 (hereinafter referred to as time out register) located at a specific place in the address space of the memory of the own node. It is so arranged that in case the timer times out before a response packet is received from the destination node of the request packet (hereinafter referred to as destination node), the source node of the request packet (hereinafter referred to as source node) will do necessary time out procedures as re-sending of the request packet.
With a value of 100 ms as initial value, the time out register can be changed from the source node or another node connected to the bus. Generally, the change can be made beforehand within the limit not exceeding the maximum 8 seconds in case the time required for the source node to send a response packet after receiving a request packet exceeds 100 ms.
In case a number of terminal units are used on the IEEE 1394 buses or terminal units are used more than 4.5 m away from a node, a plurality of buses will have to be connected. For connecting the buses to each other, such a bus bridge is needed as disclosed in the Japanese patent application laid open under No. 11-55297 (U.S. patent application Ser. No. 09/130601).
FIG. 21 shows the relation between a bus bridge 101, two buses 102, 103 and terminal units 100. In this bus bridge 101, when data is transferred from a specific node to another specific node, the node identification (ID) and other necessary parameters at the source are replaced by those at the destination, which makes it possible to transfer data between different buses. Here if, on the bus of the IEEE 1394, a new node is connected to a specific bus or a node connected to a specific node is cut off, the bus will be reset. Each time the bus is reset, new node ID""s will be given in accordance with a specific rule.
In case, as set forth above, a plurality of IEEE 1394 buses are connected using the bus bridge to transfer packets between the nodes, the bus bridge will do such procedures as switching from the bus ID of the request packet received from the source node to the bus ID of the bus connected to the destination node so as to send the packets. Also, the response packet received from the destination node is changed in bus ID, and sent to the source node.
In this case, too, the source node reads the time out register value of its own node the same way as above. With this value as timer value, the timer is set. And in case the timer times out before a response packet is received from the node via the bus bridge, such error procedures are taken as re-sending the request packet.
In this connection, it may be suggested that the bus bridge should change in advance the time out register value of the transfer source node, on supposition that the time required to transfer the request packet and transfer the response packet can exceed the time out default value. But it can happen that there are a plurality of nodes that request the bus bridge to transfer the request packets. In the above method, therefore, the bus bridge is to set all the time out registers of transfer source node of request packets in advance, which increases the traffic volume and could hinder ordinary data communication.
Furthermore, the time required for the response packet to be received after the request packet is sent can be different depending on the processing capacity of the transfer destination node and on the condition of the destination node. However, each node has only one time out register, and to avoid time out, the source node has to use the maximum timer value combined of the source node and the destination node. However, to use the same timer value for all transfers presents a processing efficiency problem.
Another problem is that since the bus bridge requires complicated procedures for transfer of the packets, the transfer source node time out register has to set the time with consideration given to the overhead needed for the bus bridge to transfer packets. Furthermore, in case packets are transferred between nodes via a plurality of bus bridges, the overhead can further increase. In such a case, the time required for a response packet to be received after the request packet is sent can exceed the maximum value set on the time out register, which can hinder normal packet communication.
In view of the prior art described above, including the disadvantages and deficiencies of the prior art, it is an object of the present invention to provide a bus control appartus, terminal units, bus control system and time out procedure in the bus control system in which time out procedures can be done efficiently in packet communication via a bus bridge.
To effect the object of the invention, the following means are adopted. First, the present invention is built on a time out control apparatus to control the time out when a packet is transferred between terminal units connected to different buses as shown in FIG. 1.
In the time out control apparatus, delay measuring means 110 measures the delay time required for a response packet to be received after a request packet is sent to a terminal unit (control unit) 117 connected via a bus 102. Delay information list generating means 111 generates a delay information list 112 in which the delay times measured by the delay measuring means 110 are related to the individual identification information on the respective terminal units. Information output means 119 reads out the delay time from the delay information list 112 in accordance with a request from the terminal unit and outputs the delay time to the terminal unit. This sets the delay time on the time out register of the terminal unit.
In case the terminal unit is not capable of making a request to the time out control apparatus for the delay time, the information output means 119 reads out the delay time from the delay information list 112 when the delay information list 112 is prepared, and outputs the delay time to the terminal unit.
Furthermore, two arrangements may be used in combinationxe2x80x94one in which the terminal unit is capable of requesting the delay time of the time out control apparatus and the other in which the terminal unit is not capable of so doing.
It is so arranged that when a bus reset occurs, the delay measuring means 110 measures the delay time needed for a response packet to be received in answer to a request packet sent to acquire individual identification information on the terminal unit, thereby generating the delay time in the delay information list.
In addition, it is desired that the delay measuring means 110 measures the delay time each time the request packets and response packets are transferred a number of times to renew the delay time in the delay information list 112.
In the usual configuration, the time out control apparatus is built in the bus bridge. This is not restrictive. The bus bridge may be a separate unit. It is desirable that the delay time includes the internal processing time in the bus bridge required to transfer the request and response packets.